home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / pcl / src-16f.lha / ldb / interrupt.h < prev    next >
C/C++ Source or Header  |  1991-11-06  |  952b  |  39 lines

  1. /* $Header: interrupt.h,v 1.3 91/09/27 10:32:30 wlott Exp $ */
  2.  
  3. #if !defined(_INCLUDE_INTERRUPT_H_)
  4. #define _INCLUDE_INTERRUPT_H_
  5.  
  6. #include <signal.h>
  7.  
  8. #define MAX_INTERRUPTS (4096)
  9.  
  10. extern struct sigcontext *lisp_interrupt_contexts[MAX_INTERRUPTS];
  11.  
  12. #ifdef SUNOS
  13. #define SIGHDLRTYPE void
  14. #else
  15. #define SIGHDLRTYPE int
  16. #endif
  17.  
  18. union interrupt_handler {
  19.     lispobj lisp;
  20.     SIGHDLRTYPE (*c)();
  21. };
  22.  
  23. extern SIGHDLRTYPE interrupt_handle_now();
  24. extern void interrupt_handle_pending();
  25. extern void interrupt_internal_error();
  26.  
  27. extern union interrupt_handler interrupt_handlers[NSIG];
  28.  
  29. #define BLOCKABLE (sigmask(SIGHUP) | sigmask(SIGINT) | \
  30.            sigmask(SIGQUIT) | sigmask(SIGPIPE) | \
  31.            sigmask(SIGALRM) | sigmask(SIGURG) | \
  32.            sigmask(SIGTSTP) | sigmask(SIGCHLD) | \
  33.            sigmask(SIGIO) | sigmask(SIGXCPU) | \
  34.            sigmask(SIGXFSZ) | sigmask(SIGVTALRM) | \
  35.            sigmask(SIGPROF) | sigmask(SIGWINCH) | \
  36.            sigmask(SIGUSR1) | sigmask(SIGUSR2))
  37.  
  38. #endif
  39.